Program shortcuts

ABSTRACT

Techniques are described that allow DVR users to create program shortcuts to different types of media content from content providers. A program shortcut comprises a reference to another media content. A user may generate a shortcut so that the user may easily find and return to media content without performing a new search. In addition, techniques may be used to automatically generate program shortcuts for a user based at least in part to user-indicated preferences or actions. Shortcuts may be generated to media content that is related to a preferred genre or media type specified by a user. Shortcuts may also be generated to content that is determined to be similar to content that is often viewed or recorded by the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is related to co-pending U.S. patent application Ser.No. 11/649,444, filed on Jan. 3, 2007, by James Barton, et al., entitled“Recommended Recording and Downloading Guides,” which is herebyincorporated by reference for all purposes as if fully set forth herein.

FIELD OF THE INVENTION

The present invention relates to digital video recorders (DVRs).

BACKGROUND

The approaches described in this section could be pursued, but are notnecessarily approaches that have been previously conceived or pursued.Therefore, unless otherwise indicated herein, the approaches describedin this section are not prior art to the claims in this application andare not admitted to be prior art by inclusion in this section.

The introduction of the DVR to the consumer world has revolutionized theway viewers watch and record media content. DVRs record televisionprograms on one or more volatile or non-volatile computer-readablestorage devices that is capable of storing a large number of mediacontent. Because DVRs are usually box-like in shape, and are often foundsitting on top of the television sets to which they are connected, DVRstypically are included in the broad category of devices referred toherein as “set-top boxes.” Much like Video Cassette Recorders (VCRs),DVRs may receive one or more media content signals (which may representtelevision programs, movies, or any other type of media content) asinput from antennas (for broadcasted content), cables (from a cableservice provider) or satellite dishes (from a satellite dish serviceprovider), and also output signals to a television set or other displaydevice for display to a user. A DVR may also receive media content frombroadband network connections that may be connected to one or morenetworks containing media content, including the Internet.

A user may instruct the DVR to schedule a recording of specified contentthat may be broadcasted or otherwise transmitted to the DVR at somefuture time. Thus, the user may schedule the automatic recording of thecontent in advance of the time that the DVR receives the content. Forexample, the user might instruct the DVR to record unspecified contentthat will be broadcasted on a specified channel beginning at a specifieddate and time and ending at another specified time. For another example,the user might instruct the DVR to record a specified showing (on aspecified channel, and beginning at a specified date and time) of aspecified movie, specified event, or specified episode of amulti-episode television series. For another example, the user mightinstruct the DVR to record the next to-be-broadcasted instance of aspecified movie, specified event, or specified episode of amulti-episode television series without specifying the date, time, orchannel on which that instance will be broadcasted. For another example,the user might instruct the DVR to record all (or all first-run)episodes of a multi-episode television series on a specified channelwithout specifying the dates or times at which those episodes will bebroadcasted. For another example, the user might instruct the DVR torecord all (or all first-run) instances of movies, events, or episodesof a multi-episode television series that are associated with aspecified keyword, a specified actor, and/or a specified directorwithout specifying the titles, channels, or broadcasting times of thoseinstances. For another example, a user might also instruct the DVR todownload specified content from a media content provider on the Internetfor future viewing.

As illustrated in the above examples, a DVR allows a user to search forand schedule programs for recording in a variety of ways. As other typesof media content, such as video on demand, downloading content fromnetworks, and online video vaults become more widely available, a user'ssearch to find media content that interest them becomes more complex. Infact, some users may feel overwhelmed by the volume and variety of mediacontent that is available. Under this circumstance, when these users doencounter particular media content they wish to record, the users maynot be able due to DVR storage space constraints or other reasons (e.g.,the users wish to record a different particular media content). If theuser waits to later add the particular media content to schedule arecording, the user has to retrace his previous steps to find theparticular media content. This process may be very frustrating forusers.

For example, suppose a user accesses a video on demand server todownload and watch a recently released movie. It is quite possible thatas the user browses for a first media content, he may encounter a secondmedia content that also interests him. Yet, in some cases (e.g., due toDVR space constraints, schedule of other recording media contents, notwishing to pay for the content until the user is sure to watch thecontent, etc.), the user cannot record the second media content at thattime. If the user decides to come back and schedule the second mediacontent later, the user generally has to retrace their steps to find thesecond media content. This process may include navigating throughvarious menu screens, repeating previously performed keywords searches,and other inconvenient details to find the second media content.Moreover, the user may navigate to an incorrect menu, misspell akeyword, or perform other minor errors. This results in the userbecoming increasingly frustrated.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a block diagram illustrating a system on which a DVR user maycreate program shortcuts, according to one embodiment of the invention;

FIG. 2 shows an example of a DVR-presented screen illustrating a mainmenu to access program shortcuts, according to an embodiment of theinvention;

FIG. 3 shows an example of a DVR-presented screen that illustrates amenu with a folder containing program shortcuts, according to anembodiment of the invention;

FIG. 4 shows an example of a DVR-presented screen that illustrates amenu with a program shortcut, according to an embodiment of theinvention;

FIG. 5 shows an example of a DVR-presented screen that allows a user tosearch for particular media content, according to an embodiment of theinvention;

FIG. 6 shows an example of a DVR-presented screen with a user interfacecontrol that allows a user indicate that he wishes to generate a programshortcut, according to an embodiment of the invention;

FIG. 7 shows an example of a DVR-presented screen that illustrates auser interface control to generate a program shortcut, according to anembodiment of the invention;

FIG. 8 shows an example of a DVR-presented screen that illustrates aconfirmation of generation of a program shortcut, according to anembodiment of the invention;

FIG. 9 shows an example of a DVR-presented screen that illustrates afolder that may contain program shortcuts, according to an embodiment ofthe invention;

FIG. 10 shows an example of a DVR-presented screen that illustrates menuitems that allow a user to access a program shortcut, according to anembodiment of the invention;

FIG. 11 shows an example of a DVR-presented screen that illustrates amenu item that allows a user to purchase video on demand content that isindicated by the program shortcut, according to an embodiment of theinvention;

FIG. 12 shows an example of a DVR-presented screen that illustrates amenu item to allow a user to confirm the video on demand purchaserequest, according to an embodiment of the invention;

FIG. 13 shows an example of a DVR-presented screen that illustratescompletion of the video on demand purchase request, according to anembodiment of the invention;

FIG. 14 shows an example of a DVR-presented screen that illustrates afolder that contains program shortcuts, according to an embodiment ofthe invention;

FIG. 15 shows an example of a DVR-presented screen that illustrates amenu item that allows a user to download particular media contentreferenced by the program shortcut, according to an embodiment of theinvention;

FIG. 16 shows an example of a DVR-presented screen that illustratesconfirmation of a download request to download the particular mediacontent, according to an embodiment of the invention;

FIG. 17 shows an example of a DVR-presented screen that illustrates amenu item to view recommended media content based upon viewinginformation for a particular media content, according to an embodimentof the invention;

FIG. 18 shows an example of a DVR-presented screen that illustratesdifferent recommended media content based upon selections from aparticular recommending entity, according to an embodiment of theinvention;

FIG. 19 shows an example of a DVR-presented screen that illustrates amenu item to generate a program shortcut that references a group ofrecommended media content from a particular recommending entity,according to an embodiment of the invention;

FIG. 20 shows an example of a DVR-presented screen that includes afolder that contains program shortcuts, according to an embodiment ofthe invention;

FIG. 21 shows an example of a DVR-presented screen that illustratesexisting program shortcuts in a group, according to an embodiment of theinvention;

FIG. 22 shows an example of a DVR-presented screen that prompts a userto record media content referenced from a program shortcut, according toan embodiment of the invention;

FIG. 23 shows an example of a DVR-presented screen that displays folderscontaining program shortcuts corresponding to third party websites,according to an embodiment of the invention;

FIG. 24 shows an example of a DVR-presented screen that lists programshortcuts corresponding to a media content from a third party website,according to an embodiment of the invention;

FIG. 25 is a block diagram that shows an example of the internalstructure and operation of a DVR, according to an embodiment of theinvention; and

FIG. 26 is a block diagram of a system on which embodiments of theinvention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

General Overview

Systems and techniques described herein allow DVR users to createprogram shortcuts to media content. As used herein, media content mayrefer to, but is not limited to, movies, television programs,downloadable content, video on demand content, content from websites, orany other media content that may be retrieved by the user. In anembodiment, a user generates program shortcuts to media content that theuser finds interesting. According to an embodiment, a program shortcutmechanism allows the user to generate the program shortcuts that link tothe referenced media content. For example, suppose a user conducting asearch identifies a particular media content that the user findsinteresting. The user might initiate a program shortcut mechanism thatcreates a program shortcut object to the media content. The programshortcut object may contain a reference or link to the particular mediacontent itself, or to an access point that allows the user to retrievethe media content. These access points may include a menu to initiate adownload of the media content or a menu to initiate a video on demand toview the media content.

In one embodiment, the program shortcut object is added as a menu itemof the DVR that is easily accessible to the user. As used herein, a menuitem that is easily accessible is a menu item that requires limitedinput commands in order to access, and thus may be accessed by the usereasily and frequently. A menu that is accessible may described as“close” for the user. As used herein, “close” may be described throughan example. A DVR menu structure might contain ten hierarchical levels(e.g., the menu is ten levels deep). Under this circumstance, anaccessible menu is closer, in terms of depth, to the main (or root) menuthan the last (or leaf) menu. Alternatively, an accessible menu mayrefer to a DVR-screen that is opened with limited input commands (e.g.,only two or three keystrokes on a remote control or other input device).For example, in a TiVo DVR system, a “Now Playing List” might be anaccessible menu because the “Now Playing List” is accessible from anypoint within two keystrokes from the input device. In other embodiments,an accessible menu is a menu that is able to be opened with a singlecommand (e.g., a dedicated button on a remote control or other inputdevice).

Program shortcuts may allow users to find and record media content thatmatches their interests without having to perform an additional search.The systems and techniques described herein may automatically createprogram shortcuts for particular media content. In an embodiment, ananalysis mechanism analyzes media content that the user has selected forrecording and selects media content related to the user-selected mediacontent to create program shortcuts. For example, a user might scheduleto record media content that includes a plurality of poker-relatedprograms. Under this circumstance, an analysis mechanism would concludethat the DVR user is interested in poker-related programming. Theanalysis mechanism may use of any type matching algorithms to findprograms of matching interests such as, but not limited to, favoriteactors, favorite themes, favorite categories (e.g. romantic comedies inHD), or any other matching methods.

Returning to the poker-related programming example, when the analysismechanism encounters a poker-related program being offered through VOD,the analysis mechanism determines that this new program may be ofinterest to the user and generates a program shortcut to the VODprogram. The analysis mechanism is not limited to VOD, as the analysismechanism may also search and generate program shortcuts to mediacontent via broadcast, download partners (such as Amazon or Netflix), orany other content delivery system.

In one embodiment, a program shortcut mechanism generates a programshortcut to related media content. The program shortcut mechanism mayplace the newly created program shortcuts in many different locationsthat vary according to implementation. For example, the program shortcutto a poker related media content might be placed in a user'spoker-related wish list. Thus, when the DVR user accesses his otherpoker-related programming, the DVR may notify the user that anadditional poker-related programming is available to be recorded. In oneembodiment, the user is notified of the program shortcuts through anicon or graphical representation on the screen. In other embodiments,the notification may come via email, pop-up message, text message,on-screen message, or any other method that may indicate the shortcut toa user.

The program shortcut may allow the user to download the referenced mediacontent at any time. Downloading may occur during off-peak hours whendownload speeds may be fastest or after additional storage space becomesavailable or is added on the DVR. In addition, the program shortcut mayallow the user to stream the referenced media content at any timethrough providers such as Netflix, YouTube, or video-on-demand forimmediate viewing.

The systems and techniques described herein may be further expanded tolink to media content from a wide-range of sources. For example, theprogram shortcut mechanism may be used to link to downloadable content(e.g., through iTunes, TivoCast, or Yahoo! TV), shared video files(e.g., media content uploaded and published by a friend or familymember), content suggested by a recommending entity, content derivedfrom the television broadcaster, video feeds, advertising data (e.g.,commercials with embedded address information), and other media contentaccessible through the Internet and other networks.

System Overview

FIG. 1 is a block diagram that illustrates a system in which a user maycreate program shortcuts or “bookmarks” to selected content, webdownloads, recommended programs, and/or other suggested media content,according to one embodiment of the invention. The system shown is onlyone of many different systems in which embodiments of the invention maybe implemented. Other systems in which embodiments of the invention maybe implemented may include more or fewer components than those shown inFIG. 1.

The system 100 shown in FIG. 1 comprises a DVR 101 that includes, in oneembodiment, a program shortcut component 110, a LAN 111, and a personalcomputer (PC) 112. In addition, system 100 includes a DVR serviceprovider's web server 106 connected to database 118, a televised contentprovider 116 (such as a broadcaster, satellite television provider,cable television provider, IPTV provider, etc.), a downloadable contentprovider's web server 114, a video on demand provider 115, arecommending entity 104, and third-party web servers 117. Typically, DVR101 and user's PC 112 are both connected (either physically orwirelessly) to LAN 110. Typically, DVR 101, LAN 111, and DVR user's PC112 all will be located in the same residence.

In one embodiment, DVR 101 receives, records, and presents media contentthat DVR 101 receives from televised content provider 116. A televisedcontent provider may provide content by broadcasting media contentover-the-air, through a cable television provider, or a satellite dishservice provider. LAN 111 is connected to Internet 102. Through LAN 111,DVR user's PC 112 and DVR 101 may communicate with other devices thatare also connected to Internet 102. DVR service provider's web server106, third-party web server 117, recommending entity 104, video ondemand provider 115, and downloadable content provider 114 are alsoconnected to Internet 102. Each of these entities, providers, andservers may communicate with each other and DVR 101 via Internet 102 andLAN 111 using web service protocols or any other communicationsprotocol. DVR user's PC 112 may execute an Internet browser application(e.g. Microsoft Internet Explorer or Mozilla Firefox). DVR user's PC 112and DVR service provider's web server 106 may communicate with eachother via Internet 102 and LAN 110 using Hypertext Transfer Protocol(HTTP) or any other communications protocol.

DVR service provider's web server 106 is connected to database 118. DVRservice provider's web server 106 may store data into and retrieve datafrom database 118. DVR 101 can download content (e.g., files) fromdownloadable content provider's web server 114 via Internet 102 and LAN111 using any type of communications protocols, including, but notlimited to, HTTP or File Transfer Protocol (FTP).

Third-party web server 117 is connected to Internet 102. Third-party webserver 117 may communicate with PC 112 and/or DVR service provider's webserver 106 through Internet 102 using any communications protocol, suchas HTTP.

Recommending entity 104 also is connected to Internet 102. Recommendingentity 104 may communicate with DVR service provider's web server 106through Internet 102 using any communications protocol, such as HTTP.

Video on demand provider 115 is connected to Internet 102. DVR 101 candownload on demand content from provider 115 via Internet 102 and LAN111 using protocols such as HTTP and File Transfer Protocol (FTP). Videoon demand provider 115 may communicate with DVR service provider's webserver 106 through Internet 102 using protocols such as HTTP.

Program Shortcuts

A program shortcut, as used herein, generally refers to an object thatcomprises a reference or link to retrieve, download, stream, purchase,record, or initiate video-on-demand of particular media content. Theprogram shortcut may include a variety of methods and routines. Aprogram shortcut may contain a reference to the particular media contentitself. A program shortcut may also contain information about the mediacontent, or contain a reference to reach a screen, method, or routine onwhich accessing, purchasing, and/or downloading the media content mayoccur. In addition, program shortcuts may contain functions to verifydigital rights to a particular set of data. The program shortcut allowsa DVR user to quickly access particular media content without having tonavigate through a number of domain spaces or menus to find theparticular media content again. Accordingly, program shortcuts arecreated in menu locations that are easily accessible to the user.

Program shortcuts may remain active for varying periods of time. Aprogram shortcut may last as long as the referenced media content isstill available. Once the referenced media content is no longeravailable, the program shortcut is no longer valid and may beautomatically removed. In some instances, a user may delete a programshortcut if the user no longer wishes to access or record the referencedmedia content. In one embodiment, the user specifies how long a programshortcut remains valid. In other embodiments, the owner of the mediacontent may set expiration dates on the media content and/or programshortcut. For example, a movie company might release a traileradvertising a particular film. The movie trailer company might wish toremove the trailer after the movie is no longer shown in movie theaters.The movie theater company might set an expiration date on the trailer orexplicitly remove the trailer and all program shortcuts to the trailerwhen the movie is no longer shown in theatres. In these and other ways,the program shortcuts may be designed to expire.

Program Shortcut Component

In FIG. 1, program shortcut component 110 generally represents acomponent of a software application that allows a DVR user to search,browse, navigate, and view electronic information. The program shortcutcomponent 110 allows a DVR user to create links (or “bookmarks”) toinformation or media content that the DVR user finds interesting. Forexample, the program shortcut component 110 may be part of a webbrowser, a document viewer, RSS newsreader, mail client, documenteditor, a database client application, or other software tool fornavigating electronic information.

In one embodiment, the program shortcut component 110 is a stand-aloneapplication such as a desktop application, screen saver, or some otherapplication with user interface controls to create the programshortcuts. Alternatively, the program shortcut component 110 is a tooldesigned to work in connection with another application, such as a webbrowser. For example, program shortcut component 110 can be a module of,extension to, or plug-in for a web browser.

In system 100, the program shortcut component 110 is illustrated as acomponent of DVR 101. In alternate implementations, the program shortcutcomponent 110 may be a component of DVR user's PC 112.

Menu for Viewing a Program Shortcut

FIG. 2 illustrates an example of a main menu for enabling a DVR user tocreate program shortcuts to media content in a DVR system 100. In oneembodiment, main menu 200 is displayed to the user on PC 112 as the useraccesses his DVR hard disk to review recorded programs. Alternatively,the main menu 200 combines data from a variety of sources, (e.g.information from the DVR service provider's web server 106, the video ondemand provider 115, etc.). In one embodiment, the menu 200 is part of amenu structure for DVR 101. Main menu 200 illustrates a number ofoptions that may be available to a user as they select, organize, andmanage media content on their DVR. For example, main menu 200 mayinclude a “Now Playing List” option 210 as the first item listed in themenu. Other options in the main menu 200 may include items such as, butnot limited to, “Watch Live TV”, “Find Programs”, “Find Collections ofPrograms”, “Video on Demand”, etc.

If the DVR user selects the “Now Playing” option 210, then the “NowPlaying List” menu appears. FIG. 3 illustrates an example of how the“Now Playing List” menu may appear when the user opens the item from theMain Menu. In FIG. 3, the “Now Playing List” menu 300 lists a number ofprograms that have been recorded and are available to view. For example,as illustrated in FIG. 3, the DVR has recorded from televised contentprovider 115 the programs: “My Name is Earl” and “The Office”. Most ofthe other folders indicate programs and categories of programs that havealso been recorded (or scheduled to record). For example, “The Sopranos”folder indicates that two episodes of the television program “TheSopranos” have been recorded (or are scheduled to record).

The Now Playing List 300 also lists a Poker folder 311 and a Bookmarksfolder 312. Notice that the Poker folder 311 has a starred icon on topof the folder. In one embodiment, an icon or any other graphicalindication is used to indicate that a menu item contains a programshortcut. For example, the star icon on the Poker folder 311 mightindicate that the Poker folder contains a program shortcut topoker-related media content. Thus, if the DVR user elects to open thePoker folder 311, then the DVR user is presented with a list ofpoker-related content where the content includes at least one programshortcut.

For example, FIG. 4 illustrates an example of the poker menu 400 thatmight be opened when the DVR user selects the Poker folder 311 option.In FIG. 4, the poker menu 400 lists a variety of poker-related mediacontent, including program shortcut 411. In this case, the programshortcut 411 links to a downloadable program (indicated by the (CDS)icon to the right of the title) called “Poker: Learn from the Pros.” Byselecting the item “Poker: Learn from the Pros” 411 indicated by rightarrow 410, the user may download the particular media content. In oneembodiment, the program shortcut 411 was created automatically by aprogram shortcut component like the one described in connection withFIG. 1. Alternatively, the program shortcut 411 may have been created bythe DVR user by selecting the media content from a list of availableprograms.

Referring back to FIG. 3, in one embodiment, the folder, “Bookmarks”312, is a general repository for all program shortcuts. In anembodiment, when a user creates a program shortcut, the program shortcutmay be placed in the “Bookmarks” folder 312 based upon a defaultsetting. In other implementations, the DVR user may be prompted tospecify a location where a program shortcut should be placed. In anembodiment, the program shortcuts may be created and automatically savedto a location based on a category, genre, the type of media content etc.For example, bookmarks for movies that are available to download,stream, or watch on video-on-demand might by placed into a folder called“Movies on demand.” This allows the user to create a list of movies theyare interested in viewing, available from a wide variety of sources, andall in a single location. In an embodiment, a link to the bookmarkfolder 312 may be located on the main menu 200 for accessibility or inanother accessible menu.

Creating Program Shortcuts for Video on Demand

According to an embodiment, to create a program shortcut for video ondemand media content, a DVR user accesses a search mechanism to retrieveinformation about the video on demand content that is available. Forexample, in one embodiment, the DVR user might access a web browser onPC 112. The web browser connects through the Internet 102 to the videoon demand provider 115, which in turn returns a list of scheduled videoon demand content. In another embodiment, the DVR user may access thevideo on demand content through DVR 101.

FIG. 5 illustrates an example search user interface 500 for searchingfor video on demand media content from video on demand provider 115. Inan embodiment, the video on demand provider 115 sends programming datato the DVR service provider's web server 106 where the programming datais stored in database 118. In an embodiment, to access video on demandcontent, PC 112 accesses the DVR service provider's web server 106 tosearch for video on demand content. Only after the DVR user has selecteda particular video on demand program will the DVR user be directlyconnected to the video on demand provider 115.

In FIG. 5, the DVR user accesses a menu 500 with a search box 510.Search box 510 allows the user to input alphanumeric characters thatcorrespond to the letters that begin keywords to be searched for by thevideo on demand provider 115 (or, alternatively, in database 118).Suppose, in this case, the DVR user would like to watch “ThePhiladelphia Story”. Accordingly, the DVR user inputs the letters “PHIL”that correspond to the beginning letters in the title “PhiladelphiaStory” in search box 510. A search request is sent to the video ondemand provider (or, alternatively the DVR service provider's webserver). The result of the search query is the list of available mediacontent shown on the right. The DVR user, in an embodiment, selects “ThePhiladelphia Story” to be downloaded to the DVR. In this case, the DVRuser also notices the movie entitled “Philadelphia”. The movie“Philadelphia” is a movie the user has not seen. After reading a briefsummary of the movie, the DVR user becomes interested in viewing themovie “Philadelphia.” The DVR user, however, does not want to purchasethe movie at this particular time, but would like the option view themovie later.

Hence, in one embodiment, the DVR user highlights and selects the“Philadelphia” menu item 512 to begin the process of creating a programshortcut. After highlighting and selecting “Philadelphia” 512, the DVRuser is presented with a second menu that is illustrated in FIG. 6

FIG. 6 illustrates an example of a user interface 600 that allows a userto indicate to the DVR system to create a program shortcut for theselected media content. For example, in FIG. 6, the create userinterface includes a set of controls that allow the user to choosebetween buying and watching the movie immediately, creating a programshortcut 610 (e.g., “bookmarking the program”), as well as otheroptions. Here, the DVR user wishes to create a program shortcut so theuser may easily find and download or stream “Philadelphia” for viewingat a later time. Thus, the DVR user highlights and selects the “Bookmarkthis Program” option 610. In an embodiment, upon selecting the “Bookmarkthis Program” option 610, a program shortcut component, such ascomponent 110 described in connection with FIG. 1, creates a programshortcut for the selected program in a default location (e.g., the NowPlaying List). Alternatively, the user may be asked to confirm theirselection.

FIG. 7 illustrates an example of a confirmation user interface 700 forconfirming whether to create a program shortcut for the specified mediacontent. In one embodiment, user interface 700 displays informationabout the availability of the media content, the content's expirationdate (e.g., when the program is no longer available), and otherinformation about the program. The DVR user confirms (using “Yes”control 710) adding a program shortcut to the Now Playing List for“Philadelphia”. In an embodiment, after confirming that a programshortcut should be created for the program, a program shortcut iscreated in the specified location. In another embodiment, the DVR usermay be prompted to specify where to place the program shortcut. In otherembodiments, the program shortcut may be placed in a location based on aset of filtering criteria (e.g., genre of movie, price, movie actor,title, etc.). After the user confirms creation of a program shortcut for“Philadelphia,” a screen indicating completion of the task may be shownto the user.

FIG. 8 illustrates an example completed user interface 800 for informingthe DVR user that the program shortcut has been created. For example,the DVR user might receive a message indicating that the programshortcut creation process is complete and added to the appropriatelocation (e.g., the Now Playing List 810) after confirming creation ofthe program shortcut.

FIG. 9 illustrates an example Now Playing List 900, similar to the listdescribed in connection with FIG. 3. As shown in FIG. 9, the Now PlayingList 900 includes an “On Demand” folder 910 with a star icon in closeproximity. The star icon, or any similar graphical indicator, mayindicate that the folder contains at least one program shortcut. Inother embodiments, a different mechanism may be used to indicate that afolder contains a program shortcut. For example, a different icon mightbe used or the folder itself may change appearance such as being shownin a different color. The DVR user may highlight and select the “OnDemand” folder 910 so that the current list of “On Demand” programs andprogram shortcuts is opened.

FIG. 10 illustrates an example view 1000 of the “On Demand” folder shownin FIG. 9. FIG. 10 shows all of the downloaded video on demand content(e.g., Spiderman 2 1020) as well as four program shortcuts:“Philadelphia” 1010, “Goodfellas” 1030, “Raging Bull” 1040, and “X-Men”1050. Program shortcuts or bookmarks are indicated with the graphicalindication “B” and the “Spiderman 2” movie has a graphical indication of“!” to indicate that the media content is available but may soon beunavailable. As illustrated, the highlight bar is selecting the“Philadelphia” program shortcut. If the user selects the “Philadelphia”program shortcut 1010, additional information may be displayed about“Philadelphia.”

For example, the user might highlight and select the “Philadelphia”program shortcut 1010. Selecting program shortcut 1010 in the video ondemand context initiates a series of steps that allow the user topurchase the video on demand content. For example, the user might selectthe program shortcut 1010 to reveal the screen 1100 as shown in FIG. 11.In FIG. 11, the DVR user may elect to buy the movie by selecting 1110.The user also has the opportunity to delete the bookmark 1120, viewrecommended content with respect to “Philadelphia” 1130, and otheroptions 1140.

A user purchasing the movie is illustrated in FIGS. 12 and 13. In FIG.12, if the user decides to buy the movie, then the user is asked toconfirm the purchase 1210 in screen 1200. Finally, in FIG. 13, the usercompletes the media content purchase and may proceed to watch the movieby selecting 1310.

Note that by placing the program shortcut in the Now Playing List, theprogram shortcut is very accessible to the DVR user. The Now Playinglist displays all of the recorded media content that is available toview on the DVR and is thus, a popular destination for DVR users. Byplacing program shortcuts in a location familiar to users, access to theprogram shortcuts becomes relatively simple. In addition, the NowPlaying List is an accessible menu for the user.

In an embodiment, program shortcuts for video on demand content may beautomatically generated. For example, a user might express an interestin poker by creating a wish list that includes numerous poker-relatedprograms. In one embodiment, the DVR 101 or PC 112 may automaticallycreate program shortcuts to any program that is related to poker whenthat program is detected as a video on demand program. A shortcut may begenerated when the media content appears as the video on demand providerupdates the DVR service provider's web service provider's electronicprogramming guide. Similarly, media content may be matched to programsadded to a catalog from broadband video on demand providers, such as,but not limited to Amazon, Netflix, and Blockbuster.

The various menus illustrated in FIGS. 5-13 include various features,controls, and options that may vary between implementations. Forexample, in one embodiment, the menus used to create a program shortcutmay be more or fewer than those illustrated in FIGS. 5-13. Moreover, thespecific menu options and wording may differ from one implementation toanother.

Creating Program Shortcuts for Downloadable Content

Downloadable content generally refers to any media content that may bedownloaded upon request by the DVR user. For example, web services areincreasingly available that provide downloadable versions of recenttelevision programs and movies. In one embodiment, a user may access andpurchase downloadable content through their PC 112 or DVR 101. Examplesof providers of downloadable content include, but are not limited to,TivoCast, YouTube, and iTunes. Downloadable content may also refer tocontent that is streamed to a user for immediate viewing. Streamedcontent is content constantly received by, and presented to a user asthe content is being delivered by a streaming provider, such as, but notlimited to YouTube or Netflix.

To illustrate the process of creating a program shortcut fordownloadable content, suppose a DVR user accesses a search mechanismthat retrieves data about the downloadable content. For example, in oneembodiment, the DVR user accesses a web browser on PC 112. The webbrowser connects through the Internet 102 to the downloadable contentprovider 114, which in turn returns a list of scheduled video on demandcontent. Note that in another implementation, the DVR user may accessthe downloadable content in a similar fashion through DVR 101.

In a manner similar to that described in connection with FIG. 5, the DVRuser may access a search user interface for finding downloadable contentfrom downloadable content provider 114. In one embodiment, thedownloadable content provider sends information about the downloadablecontent provider's media content to the DVR service provider's webserver 106 where the media content is stored in database 118. Thus, inone embodiment, to access downloadable content, PC 112 accesses the DVRservice provider's web server 106. The DVR user is then connected to theDVR after the user has selected downloadable content.

Using a search user interface, the DVR user accesses a menu with asearch control that allows the user to input keywords to be sent to thedownloadable content provider 114 (or, alternatively, to database 118).Suppose, in this case, the DVR user would like to watch a show called“Poker: Learn from the Pros.” Accordingly, the DVR user performs theappropriate query, which sends a search request to the downloadablecontent provider (or, alternatively the DVR service provider's webserver). The result of the search query is a list that contains at leastone entry for “Poker: Learn from the Pros”. The DVR user, however, doesnot want to download, purchase, or watch, the content, at thisparticular time, but would like the option to return and access the showlater. The user may also not wish to watch the content, but just markthe content for later reference or to show the content to others.

Hence, in one embodiment, the DVR user highlights and selects “Poker:Learn from the Pros”, which begins the process of creating a programshortcut for the program. After highlighting and selecting “Poker: Learnfrom the Pros”, the DVR user is presented with a second menu similar tothe menu illustrated in FIG. 6

The DVR user indicates that a program shortcut should be created for theselected downloadable content. (e.g., by highlighting and selecting a“Bookmark this Program” option). In one embodiment, upon selecting the“Bookmark this Program” option, a program shortcut component, such ascomponent 110 described in connection with FIG. 1, creates a programshortcut for the selected program in a default location (e.g., the NowPlaying list). Alternatively, the user may save the downloadable contentelsewhere.

The DVR user continues to follows steps similar to those illustrated inFIGS. 7-8. For example, in one embodiment, the DVR user confirms theirdesire to create a program shortcut for the specified media content. Inone embodiment, the program shortcut is then created in a specifiedlocation. The location may be input by the DVR user that may be adefault location, or the location may be automatically determinedaccording to a set of predetermined criteria. The predetermined criteriamay include, but is not limited to, the population of an existing menu(not too many items in the menu), the closeness of (or number of inputcommands needed to reach) the menu to the main menu, or the frequencywith which a user accesses the particular location.

FIG. 14 illustrates another example Now Playing list 1400, similar tothe list described in connection with FIG. 3 and FIG. 9. As shown inFIG. 14, the Now Playing list 1400 includes a “Poker” folder 1410 with astar icon in proximity to the folder, which indicates that the foldercontains at least one program shortcut. Here, the DVR user highlightsand selects the “Poker” folder 1410 so that the current list ofpoker-related programs and program shortcuts is open. Once the folder isopen, DVR user highlights and selects the “Poker: Learn from the Pros”program shortcut.

FIG. 15 illustrates an example download user interface 1500. Here, theDVR user may elect to download the program immediately, setup seasonpass (e.g., download each new episode that is released), delete theprogram shortcut, etc. In one embodiment, additional information aboutthe downloadable content may be displayed (e.g., the duration of theshow, rating, etc.).

In this example, the DVR user downloads the program using the “download”control 1510, which initiates the download process. In one embodiment,once the download is complete, the DVR user receives confirmation 1600that the program downloaded successfully.

The various menus illustrated in FIGS. 14-16 include various features,controls, and options that may vary between implementations. Forexample, in one embodiment, the menus used to create a program shortcutmay be more or fewer than those illustrated in FIGS. 14-16. Moreover,the specific menu options and wording may differ from one implementationto another implementation.

Program Shortcuts for Recommending Entity

Recommending entities allow a user to receive recommendations to mediacontent made by third parties. A recommending entity is furtherdescribed in the U.S. Patent Application, “Recommended Recording andDownloading Guides”, owned by the Applicant and incorporated byreference for all purposes herein. For example, a user might enjoyviewing classic movies. In one embodiment, a recommending entitycomprising one or more movie critics provides recommended viewingoptions. In an embodiment, the recommended viewing media content shownmay be based, at least in part, on criteria submitted by the user. Forexample, as illustrated in FIG. 17, a DVR user might search for and find“L.A. Confidential”, a favorite movie of the DVR user. The DVR usermight wish to watch another movie that is similar to “L.A.Confidential”. Recommendation entities may present other media contentthat the DVR user may also enjoy based upon their preference for “L.A.Confidential.”

In FIG. 18, a recommending entity (e.g., a panel of movie critics fromEntertainment Weekly) may evaluate the DVR user's selection and makerecommendations based on the selection. For example, if the user likes“L.A. Confidential”, then the recommending entity might (based on inputfrom the critics) recommend other movies in the same genre, that featurethe same actors, that are written by the same writers, that are producedby the same producers, or any other type of relation.

In one embodiment, the DVR user is presented with a list of therecommended movies and content. The user may selectively pick whichmedia content to download immediately and which programs to bookmark forlater use.

In some instances, the recommending entity may update recommendations ona periodic basis. In one embodiment, DVR user may create a bookmark tothe recommending entity's list (or guide, or collection) of programs andaccess their recommendations as a group rather than as an individualprogram. FIG. 19 illustrates an example of a guide user interface 1900for allowing the DVR user to create program shortcuts to the group ofprograms recommended by the recommending entity by making the selection“Bookmark this Guide” 1910. Program shortcuts may point to any type ofgrouped data, including multiple video on demand programs and groups ofdownloadable content.

After the DVR user has created a program shortcut to a recommendingentity's recommendations, additional program shortcuts may be made torecommendation updates. In one embodiment, when a new media content isadded to the recommending entity's list of programs, a program shortcutis automatically created for those newly added programs. For example, inFIG. 20, DVR user has created a program shortcut to EntertainmentWeekly's recommended movies. Over a period of time, the EntertainmentWeekly recommendation entity adds movies to the recommended list. In oneembodiment, DVR user accesses the Now Playing List 2000, highlights the“Movies by EW” option 2010, and opens the folder containing programshortcuts to Entertainment Weekly's recommended movies.

FIG. 21 shows a list 2100 of Entertainment Weekly's recommended movies.According to one embodiment, the DVR user may browse through the list ofprograms, read information about each program, and ultimately decidewhether to record a program. The DVR user may read the informationavailable on each of the five listed movies. For example, the DVR usermight decide to watch “L.A. Confidential” 2110. The DVR user highlightsand selects “L.A. Confidential” 2110 from the list. The DVR user mayalso highlight and select “Friday Night Lights” from the list. Underthis circumstance, the user is transferred to a subsequent menu 2200. InFIG. 22, the DVR user may select to record 2210 the media content“Friday Night Lights.”

With respect to the recommending entity's media content selections, theuser may subscribe to a season pass of the recommended programs. If theuser subscribes to a season pass, then the DVR may automaticallydownload all of the recommended picks by the particular entity until theuser indicates otherwise. If the media content selection requires apurchase, then a program shortcut may automatically be created for theselected content. The DVR user then has available a particular number ofrecommended programs, or program shortcuts for the programs, on theircomputer or DVR at any given time. Moreover, the programs may updateover time. Thus, if a particular movie is removed from the recommendedlist, the corresponding program shortcut is automatically removed fromthe “Now Playing List” as well.

In one embodiment, additional controls may be applied that allow theuser to select subsets of a recommending entity's picks. For example,the recommending entity 104 might pick a particular media content thatthe DVR user finds offensive. Under this circumstance, the DVR userwould have the option to filter out particular programs, as well asparticular categories, ratings, genres, etc. to remove any items thatthe user does not want.

Creating Program Shortcuts for Third Party Information

Third party information may refer to a wide variety of information. Inan embodiment, third party information refers to data downloaded fromthe Internet (e.g., from Yahoo Video, YouTube, etc.) and transcoded intoa format that is able to be played on a PC (such as PC 112 discussed inconnection with FIG. 1). For example, a DVR user might be browsing theInternet 102 on their PC 112 and encounter a video that they findamusing. In one embodiment, the user downloads that video file to theirPC, converts the video file into a format compatible with the DVR (e.g.MPEG2), and then uploads the file to the DVR.

In an embodiment, program shortcuts may be set up that referenceswebsites that upload media content on a regular basis. When the userwishes to access additional files, the DVR user simply selects theappropriate bookmark in the Now Playing List that indicates the websiteto the third party web server. Content is downloaded or streamed fromthe website and converted into a compatible format for the DVR (ifnecessary), and transferred to the DVR for viewing.

For example, FIG. 23 illustrates a program shortcut user interface 2300that lists a variety of sources for downloadable content. One of thosesources is “Best of Google Video” 2310. A user may select “Best ofGoogle Video” in order to view content from the “Best of Google Video”on the DVR. In an embodiment, the downloaded content from the websitemay contain links to further content that would appear as programshortcuts. For example, FIG. 24 shows a view 2400 of the “Best of GoogleVideo” folder, including program shortcuts to video files on Google'swebsite. Selecting the program shortcuts downloads the referenced mediacontent for viewing by the user.

Creating Program Shortcuts to Third Party (Advertiser) Sites

In addition to the downloadable video content, a program shortcut maycontain a reference to a particular website. Some media content mayinclude tags and other embedded codes that transmit additionalinformation to the user about the media content viewed. For example, acommercial for the automobile company, Lexus, might include interactive(e.g., embedded) data, such as a URL link or an icon indicating moreavailable information at the bottom of the commercial screen. The usermay click the URL link or icon to navigate to a web page containing moreinformation about the particular product or program. The link might alsolead to another media content download containing further information.Tags might also be applied to other media content, such as televisionshows, where a content provider embeds a tag in a television show formore information about related television shows.

In an embodiment, the program shortcut component enhances a user'sability to interact with the additional information. For example, theDVR user might not have the time to visit Lexus' website as thecommercial airs. However, the commercial itself may be interestingenough that the user wishes to mark the link for additional informationfor a later visit. Accordingly, in one embodiment, the program shortcutcomponent 110 extracts an embedded URL or link from the media contentand creates a program shortcut that references the extracted URL addressor link. Then, later when the user is available to browse the additionalinformation, the user merely needs to access the saved program shortcut.The program shortcut contains a reference to the embedded URL address orlink, and the user may then be transferred to the automobile company'swebsite, or other location with additional information.

Creating Program Shortcuts for Program Data

Referring again to FIG. 1, program shortcuts may also be linked to dataretrieved from the DVR service provider's web service 106 and/ortelevised content provider 114. In an embodiment, the televised contentprovider 114 transmits electronic programming information to the DVRservice provider's web server 106, to be stored in database 118. Then,when a DVR user performs a find program action (e.g., by using a “FindProgram” option, like the one illustrated in FIG. 2), the content fromthe electronic programming guide may also be bookmarked. For example,suppose the DVR user wants to watch an episode of the television program“My Name is Earl”. The user might submit a query from the user's PC tofind out when that particular television program airs. The query mightalso be submitted directly from the DVR.

The query is sent to the DVR service provider's web server, where thequery is processed on the electronic programming guide data stored indatabase 118. In one embodiment, a result is returned listing at leastthe time and date that the program airs. As the user browses theelectronic programming guide, in one embodiment, the DVR user noticesthe program “The Office” and recalls overhearing excellent reviewsregarding the program. However, the user only has the space and time torecord one of the programs. In one embodiment, the DVR user sets aprogram shortcut on “The Office” listing in the electronic programmingguide. As detailed above, when the user indicates (e.g., by pressingbuttons on his remote control for the DVR or by using mouse clicks onhis computer) that the user would like to create a program shortcut, theprogram shortcut component creates a shortcut object with the programinformation for “The Office” and stores the shortcut object to a menureadily accessible to the user. The program shortcut is added as a menuitem to that menu.

In another embodiment, a user make create program shortcuts for programsthat are being broadcast by creating a WishList (like for Poker-relatedprogramming) but not setting the Wishlist to auto-record the mediacontent. In the Poker folder of Now Playing, program shortcuts aregenerated for all the upcoming shows that match the preference withautomatic recordings of the shows not made. To record the program, theuser may set one or more of the programs to record based upon theprogram shortcut, up until the time the program is to be broadcast. Ifthe time of broadcast passes without the user selecting to record, theprogram shortcut is deleted.

Sharing Program Shortcuts

As an additional way to use program shortcuts, the DVR systemillustrated in FIG. 1 allows users to share program shortcuts with usersof other DVRs. Users may create networks with users of other DVRs inorder to share media content. The networks may be private networksbetween the users or through the Internet. For example, in oneembodiment, DVR system 100 might allow a user to identify other DVRusers as “friends” and invite the other DVR users to access items in theuser's Now Playing List. Thus, when a user is linked to other DVR users,the user may view, among other things, the other users' Now PlayingLists. In an embodiment, the user who is sharing shortcut may choosefrom a predefined list of reasons for sharing the shortcut. For example,the user may choose from choices such as, but not limited to, “It is myfavorite show” or “It is like <name of another show>.” The predefinedlist avoids the problem of making users type on the television.

In an embodiment, the user also has limited publishing rights to theother users' Now Playing List. In this way, the user may create programshortcuts for a second user that the second user may find interesting.The second user may also limit or prohibit other users from publishingprogram shortcuts on the second user's DVR. In one embodiment, a usermay create a single shared folder where other users publish programshortcuts. This is a way to share data without using up large amounts ofthe other users' storage space. In one embodiment, a user has to beauthenticated to the other system before they have access to any portionof the other user's DVR system.

Other Features of Program Shortcuts

In an embodiment, automatic program shortcuts may be generated foradditional content of media content. For example, “extras” likebroadband streamed minisodes, or behind-the-scenes featurettes that maybe associated to a particular television show or movie based upon anidentifier, may be generated if the user has recorded or scheduled torecord the referenced television show or movie. The program shortcutsmay be displayed in the Now Playing List group for that particulartelevision show or movie to allow the user the option to later view theadditional content.

In an embodiment, a specific piece of media content not currentlyavailable is requested up. When the media content does become available,a program shortcut is generated and appears. For example, a user mightwish to view the movie “Duplicity,” but the movie might not currently beavailable because the movie has not yet been released for homedistribution or might simply not be available. When the movie doesbecome available in any form, such as to record, download, or stream, aprogram shortcut is generated and the program shortcut appears for theuser. In an embodiment, the request for the specific media content is ina “Not currently available” folder until the specific media contentbecomes available and a program shortcut is created.

In an embodiment, a user emails or text messages interestingcontent/articles to a DVR and the DVR may then determine media contentto generate program shortcuts based on the keywords found in thearticle. For example, user might enjoy “NASCAR” and email or text anarticle regarding a “NASCAR” race to the DVR. The DVR might thendetermine that the user is interested in media content related to mediacontent and generate program shortcuts to media content about races andother NASCAR events. In another example, a user might email a gossiparticle regarding the actor, “Tom Hanks”. Based upon the keywords, “TomHanks,” in the article, program shortcuts may be generated where TomHanks participates in some role in the content. This may be as an actoror a producer or any other role that Tom Hanks might play.

In another embodiment, a user may text message or email a specific pieceof media content to a DVR and the DVR adds program shortcuts when themedia content becomes available. The bookmark may appear in the NowPlaying List. For example, if a user is interested in the movie“Wall-E”, a trailer, a partial segment of, or some other media contentmight be sent by the user to the DVR that relates to the movie “Wall-E.”The DVR may generate the program shortcut if the specific media contentis already available or the DVR may need to wait until the media contentbecomes available and then create a program shortcut.

In yet another embodiment, a user may perform a search on the serviceprovider's web site or other interface (mobile, telephone voicerecognition, or email). When a user finds media content that he or sheis interested, program shortcuts may be generated at the DVR from thewebsite or other interface. This allows users who are not at home in aremote location, to generate program shortcuts of content. In addition,these searches may be performed at home, or the location of the DVR.Searching from a website might be much easier (without have to type on atelevision) for a user and he or she might prefer to search from theservice provider's website rather than on the DVR itself. This allowsadditional interfaces on which to generate program shortcuts for theuser.

Example DVR

FIG. 25 is a block diagram that shows an example of the internalstructure and operation of a DVR, according to an embodiment of theinvention. An example of the internal structure and operation of a DVRis further described in U.S. Pat. No. 6,233,389, which is incorporatedby reference as though originally disclosed herein.

The DVR shown in FIG. 25 comprises an input module 2501, a media switch2502, and an output module 2503. Input module 2501 receives television(TV) input streams in any of a variety of forms. For example, a TV inputstream received by input module 2501 may take the form of a NationalTelevision Standards Committee (NTSC) compliant signal or a PALcompliant broadcast signal. For another example, a TV input streamreceived by input module 2501 may take a digital form such as a DigitalSatellite System (DSS) compliant signal, a Digital Broadcast Services(DBS) compliant signal, or an Advanced Television Standards Committee(ATSC) compliant signal. DBS, DSS, and ATSC are based on standardscalled Moving Pictures Experts Group 2 (MPEG-2) and MPEG-2 Transport.MPEG-2 Transport is a standard for formatting the digital data streamfrom the TV source transmitter so that a TV receiver can disassemble theinput stream to find programs in the multiplexed signal. According toone embodiment of the invention, input module 2501 produces MPEGstreams. According to another embodiment of the invention, input module2501 produces streams that are encoded using a different codec.

An MPEG-2 transport multiplex supports multiple programs in the samebroadcast channel, which multiple video and audio feeds and privatedata. Input module 2501 tunes the channel to a particular program,extracts a specified MPEG stream from the channel, and feeds the MPEGstream to the rest of the system. Analog TV signals are encoded into asimilar MPEG format using separate video and audio encoders, such thatthe remainder of the system is unaware of how the signal was obtained.Information may be modulated into the vertical blanking interval (VBI)of the analog TV signal in a number of standard ways; for example, theNorth American Broadcast Teletext Standard (NABTS) may be used tomodulate information onto certain lines of an NTSC signal, which the FCCmandates the use of a certain other line for closed caption (CC) andextended data services (EDS). Such signals are decoded by input module2501 and passed to the other modules as if the signals had beendelivered via an MPEG-2 private data channel.

Media switch 2502 mediates between a microprocessor CPU 2506, a harddisk or storage device 2505, and memory 2504. Input streams areconverted to an MPEG stream and sent to media switch 2502. Media switch2502 buffers the MPEG stream into memory 2504. Media switch 2502 thenperforms two operations if the DVR user is watching real-time TV: mediaswitch 2502 sends the MPEG stream to output module 2503 andsimultaneously writes the MPEG stream to hard disk or storage device2505.

Output module 2503 receives MPEG streams as input and produces an analogTV signal according to NTSC, PAL, or other TV standards. Output module2503 comprises an MPEG decoder, an on-screen display (OSD) generator, ananalog TV encoder, and audio logic. The OSD generator allows the programlogic to supply images which may be overlaid on top of the resulting TVanalog signal. Additionally, output module 2503 can modulate informationsupplied by the program logic onto the VBI of the output signal in anumber of standard formats, including NABTS, CC, and EDS.

Hardware Overview

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

For example, FIG. 26 is a block diagram that illustrates a computersystem 2600 upon which an embodiment of the invention may beimplemented. Computer system 2600 includes a bus 2602 or othercommunication mechanism for communicating information, and a hardwareprocessor 2604 coupled with bus 2602 for processing information.Hardware processor 2604 may be, for example, a general purposemicroprocessor.

Computer system 2600 also includes a main memory 2606, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 2602for storing information and instructions to be executed by processor2604. Main memory 2606 also may be used for storing temporary variablesor other intermediate information during execution of instructions to beexecuted by processor 2604. Such instructions, when stored in storagemedia accessible to processor 2604, render computer system 2600 into aspecial-purpose machine that is customized to perform the operationsspecified in the instructions.

Computer system 2600 further includes a read only memory (ROM) 2608 orother static storage device coupled to bus 2602 for storing staticinformation and instructions for processor 2604. A storage device 2610,such as a magnetic disk or optical disk, is provided and coupled to bus2602 for storing information and instructions.

Computer system 2600 may be coupled via bus 2602 to a display 2612, suchas a cathode ray tube (CRT), for displaying information to a computeruser. An input device 2614, including alphanumeric and other keys, iscoupled to bus 2602 for communicating information and command selectionsto processor 2604. Another type of user input device is cursor control2616, such as a mouse, a trackball, or cursor direction keys forcommunicating direction information and command selections to processor2604 and for controlling cursor movement on display 2612. This inputdevice typically has two degrees of freedom in two axes, a first axis(e.g., x) and a second axis (e.g., y), that allows the device to specifypositions in a plane.

Computer system 2600 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 2600 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 2600 in response to processor 2604 executing one or moresequences of one or more instructions contained in main memory 2606.Such instructions may be read into main memory 2606 from another storagemedium, such as storage device 2610. Execution of the sequences ofinstructions contained in main memory 2606 causes processor 2604 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any media that storedata and/or instructions that cause a machine to operation in a specificfashion. Such storage media may comprise non-volatile media and/orvolatile media. Non-volatile media includes, for example, optical ormagnetic disks, such as storage device 2610. Volatile media includesdynamic memory, such as main memory 2606. Common forms of storage mediainclude, for example, a floppy disk, a flexible disk, hard disk, solidstate drive, magnetic tape, or any other magnetic data storage medium, aCD-ROM, any other optical data storage medium, any physical medium withpatterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, anyother memory chip or cartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 2602. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 2604 for execution. Forexample, the instructions may initially be carried on a magnetic disk orsolid state drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 2600 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 2602. Bus 2602 carries the data tomain memory 2606, from which processor 2604 retrieves and executes theinstructions. The instructions received by main memory 2606 mayoptionally be stored on storage device 2610 either before or afterexecution by processor 2604.

Computer system 2600 also includes a communication interface 2618coupled to bus 2602. Communication interface 2618 provides a two-waydata communication coupling to a network link 2620 that is connected toa local network 2622. For example, communication interface 2618 may bean integrated services digital network (ISDN) card, cable modem,satellite modem, or a modem to provide a data communication connectionto a corresponding type of telephone line. As another example,communication interface 2618 may be a local area network (LAN) card toprovide a data communication connection to a compatible LAN. Wirelesslinks may also be implemented. In any such implementation, communicationinterface 2618 sends and receives electrical, electromagnetic or opticalsignals that carry digital data streams representing various types ofinformation.

Network link 2620 typically provides data communication through one ormore networks to other data devices. For example, network link 2620 mayprovide a connection through local network 2622 to a host computer 2624or to data equipment operated by an Internet Service Provider (ISP)2626. ISP 2626 in turn provides data communication services through theworld wide packet data communication network now commonly referred to asthe “Internet” 2628. Local network 2622 and Internet 2628 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 2620 and through communication interface 2618, which carrythe digital data to and from computer system 2600, are example forms oftransmission media.

Computer system 2600 can send messages and receive data, includingprogram code, through the network(s), network link 2620 andcommunication interface 2618. In the Internet example, a server 2630might transmit a requested code for an application program throughInternet 2628, ISP 2626, local network 2622 and communication interface2618.

The received code may be executed by processor 2604 as it is received,and/or stored in storage device 2610, or other non-volatile storage forlater execution.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is the invention, and is intended by the applicants to be theinvention, is the set of claims that issue from this application, in thespecific form in which such claims issue, including any subsequentcorrection. Any definitions expressly set forth herein for termscontained in such claims shall govern the meaning of such terms as usedin the claims. Hence, no limitation, element, property, feature,advantage or attribute that is not expressly recited in a claim shouldlimit the scope of such claim in any way. The specification and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

1. A computer-implemented method, comprising: receiving user commandinput that indicates a particular media content to which a user wishesto create a shortcut; generating a program shortcut object thatcomprises a reference to a process that allows retrieval of theparticular media content; storing the shortcut object in a menu as amenu item; and in response to receiving user command input indicatingthat the user has selected the particular program shortcut object,navigating to the process that allows retrieval of the particular mediacontent that is referenced by the shortcut object; wherein the method isperformed by one or more special-purpose computing devices.
 2. Themethod of claim 1, wherein the process includes at least any one of:video on demand, downloading, and recording.
 3. The method of claim 1,further comprising: analyzing media content that the user has viewed orrecorded; identifying a type of media content that is of interest to auser based at least in part to the analysis of the media content; andautomatically generating a shortcut object to media content that issimilar to the type of media content identified.
 4. The method of claim1, further comprising: receiving user command input that indicates atype of media content to which the user has an interest; and generatinga program shortcut to media content based at least in part upon the typeof media content identified by the user command input.
 5. The method ofclaim 1, wherein the particular media content includes any one of: videoon demand, downloadable content, media content recommended by arecommending entity, or media content from third-party web sites.
 6. Themethod of claim 1, wherein the menu item to which the shortcut is storedis a menu item accessible by two or less user command input commands. 7.The method of claim 1, further comprising sharing shortcut objects withother users within a network.
 8. The method of claim 1, wherein storingthe shortcut object further comprises storing the shortcut object in amenu specified by a user command input.
 9. The method of claim 1,wherein storing the shortcut object further comprises storing theshortcut object in a menu based upon predetermined criteria.
 10. Themethod of claim 1, wherein the shortcut object remains stored only ifthe media content referenced by the shortcut object is available. 11.The method of claim 1, wherein the shortcut object remains stored onlyuntil user command input is received that indicates the user wishes toremove the shortcut object.
 12. The method of claim 1, wherein theshortcut object is stored until an expiration date specified by theprovider of media content referenced by the shortcut object.
 13. One ormore storage media storing instructions which, when executed by one ormore computing devices, cause performance of the steps: receiving usercommand input that indicates a particular media content to which a userwishes to create a shortcut; generating a program shortcut object thatcomprises a reference to a process that allows retrieval of theparticular media content; storing the shortcut object in a menu as amenu item; and in response to receiving user command input indicatingthat the user has selected the particular program shortcut object,navigating to the process that allows retrieval of the particular mediacontent that is referenced by the shortcut object.
 14. The one or morestorage media storing instructions of claim 13, wherein the processincludes at least any one of: video on demand, downloading, andrecording.
 15. The one or more storage media storing instructions ofclaim 13, further comprising: analyzing media content that the user hasviewed or recorded; identifying a type of media content that is ofinterest to a user based at least in part to the analysis of the mediacontent; and automatically generating a shortcut object to media contentthat is similar to the type of media content identified.
 16. The one ormore storage media storing instructions of claim 13, further comprising:receiving user command input that indicates a type of media content towhich the user has an interest; and generating a program shortcut tomedia content based at least in part upon the type of media contentidentified by the user command input.
 17. The one or more storage mediastoring instructions of claim 13, wherein the particular media contentincludes any one of: video on demand, downloadable content, mediacontent recommended by a recommending entity, or media content fromthird-party web sites.
 18. The one or more storage media storinginstructions of claim 13, wherein the menu item to which the shortcut isstored is a menu item accessible by inputting two or less inputcommands.
 19. The one or more storage media storing instructions ofclaim 13, further comprising sharing shortcut objects with other userswithin a network.
 20. The one or more storage media storing instructionsof claim 13, wherein storing the shortcut object further comprisesstoring the shortcut object in a menu specified by a user command input.21. The one or more storage media storing instructions of claim 13,wherein storing the shortcut object further comprises storing theshortcut object in a menu based upon predetermined criteria.
 22. The oneor more storage media storing instructions of claim 13, wherein theshortcut object remains stored only if the media content referenced bythe shortcut object is available.
 23. The one or more storage mediastoring instructions of claim 13, wherein the shortcut object remainsstored only until user command input is received that indicates the userwishes to remove the shortcut object.
 24. The one or more storage mediastoring instructions of claim 13, wherein the shortcut object is storeduntil an expiration date specified by the provider of media contentreferenced by the shortcut object.